#!/bin/bash
###############################################################################
# @用例ID: 20231204-202558-537075731
# @用例名称: id-ctrl
# @用例级别: 3
# @用例标签:
# @扩展属性:
# @用例类型: 功能测试
# @自动化: 1
# @超时时间: 0
# @用例描述: 用于测试nvme命令id-ctrl接口
###############################################################################
[ -z "$TST_TS_TOPDIR" ] && {
    TST_TS_TOPDIR="$(realpath "$(dirname "$0")/..")"
    export TST_TS_TOPDIR
}
source "${TST_TS_TOPDIR}/tst_common/lib/common.sh" || exit 1
###############################################################################

g_tmpdir="$(mktemp -d)"

tc_setup() {
    msg "this is tc_setup"

    # @预置条件: 确保nvme-cli已被安装
    assert_true  sudo yum install -y nvme-cli
    return 0
}

do_test() {
    msg "this is do_test"

    # @测试步骤: 测试id-ctl接口是否正常工作
    # @预期结果: 若设备不存在，则进行相应告警
    output="$(nvme id-ctrl  2>&1)"
    
    if [ "$?" -ne 0 ]; then
        echo "$output"

        # 设备不存在时输出示例如下
        # /dev/nvme0: 没有那个文件或目录
        # Usage: nvme id-ctrl <device> [OPTIONS]
        assert_true echo "$output" | grep -q "Usage: nvme id-ctrl <device> [OPTIONS]"

        return 0
    else
        # 设备存在时，确保输出不包含错误提示
        assert_false echo "$output" | grep -q "Usage: nvme id-ctrl <device> [OPTIONS]"
        return 0
    fi

    return 0
}

tc_teardown() {
    msg "this is tc_teardown"
    rm -rfv "$g_tmpdir" || return 1
    return 0
}

###############################################################################
tst_main "$@"
###############################################################################
